import Vue from 'vue'
import VueRouter from 'vue-router'
import store from "../store"

Vue.use(VueRouter)
export const IndexRoutes = [
  {
    path: "menu",
    component: () => import("../pages/menu/menu.vue"),
    meta: { title: "菜单管理" }
  },
  {
    path: "role",
    component: () => import("../pages/role/role.vue"),
    meta: { title: "角色管理" }
  },
  {
    path: "manage",
    component: () => import("../pages/manage/manage.vue"),
    meta: { title: "管理员管理" }
  },
  {
    path: "cate",
    component: () => import("../pages/cate/cate.vue"),
    meta: { title: "商品分类" }
  },
  {
    path: "specs",
    component: () => import("../pages/specs/specs.vue"),
    meta: { title: "商品规格" }
  },
  {
    path: "goods",
    component: () => import("../pages/goods/goods.vue"),
    meta: { title: "商品管理" }
  },
  {
    path: "banner",
    component: () => import("../pages/banner/banner.vue"),
    meta: { title: "轮播图管理" }
  },
  {
    path: "member",
    component: () => import("../pages/member/member.vue"),
    meta: { title: "会员管理" }
  },
  {
    path: "seckill",
    component: () => import("../pages/seckill/seckill.vue"),
    meta: { title: "秒杀活动" }
  },
]

IndexRoutes.forEach(item=>{
  item.beforeEnter = ((to,from,next)=>{
    let {info:{menus_url}} = store.getters;
    if(menus_url.includes('/'+item.path)){
      next();
    }else{
      next("/");
    }
  })
})

const routes = [
  {
    path: "/login",
    component: () => import("../pages/login/login.vue")
  },
  {
    path: "/",
    component: () => import("../pages/index/index.vue"),
    children: [
      {
        path: "",
        component: () => import("../pages/home/home.vue")
      },
      ...IndexRoutes
    ]
  },
  {
    path: "",
    redirect: "/login"
  },
]

const router = new VueRouter({
  mode: "history",
  routes
})

router.beforeEach((to, from, next) => {
  if (to.path === "/login") {
    next();
    return;
  }

  if (store.getters.info.token) {
    next();
    return;
  }

  next('/login');
})

export default router
